package com.jacob.androidstudy.javanote;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 泛型：
 * 
 * 
 */
public class $22_泛型 {

	public static void main(String[] args) {
//		1.对于某些类，具有类型参数“<E>”、“<K,V>”。在生成对象时，可以指定类型参数。
		HashMap<String, Integer> hm = new HashMap<String, Integer>();
		
//		2.使用泛型时，还可以使用多态。
		List<String> list = new ArrayList<String>();
		
//		3.但是泛型参数本身，是没有多态的。左右两边的泛型参数类型必须相同。
//		List<Object> list2 = new ArrayList<String>();
		
//		4.定义时，可以使用泛型通配符；生成对象时，不能使用通配符。此时定义的对象不能改，只能读。而且读出来的是extends后面的类型。
		List<? extends Number> list2 = new ArrayList<Integer>();
		
	}

}
